home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 414_02 / makefile < prev    next >
Encoding:
Makefile  |  1993-11-24  |  35.4 KB  |  862 lines

  1. # $Header: C:\CURSES\RCS\makefile 2.1 1993/06/18 20:24:59 MH Rel MH $
  2. #================ PDCurses makefile for DMAKE 3.8 ======================
  3. # This makefile is for DMAKE, either under DOS or OS/2
  4. # The following OS/Compiler combinations are supported:
  5. #
  6. # Target  Compiler    Command                     Compiler
  7. # O/S     Mnemonic    Line
  8. # System
  9. #-----------------------------------------------------------------------
  10. # DOS       BCC       OS=DOS COMP=BCC             Borland C++
  11. # DOS       TCC       OS=DOS COMP=TCC             Borland Turbo C++
  12. # DOS       TC        OS=DOS COMP=TC              Borland Turbo C
  13. # DOS       MSC       OS=DOS COMP=MSC             Microsoft C
  14. # DOS       QCC       OS=DOS COMP=QCC             Microsoft Quick C with QCC
  15. # DOS       QCL       OS=DOS COMP=QCL             Microsoft Quick C with QCL
  16. # DOS       GO32      OS=DOS COMP=GO32            DJGPP gnu C
  17. # OS2       CSET2     OS=OS2 COMP=CSET2           IBM C Set/2
  18. # OS2       BCC       OS=OS2 COMP=BCC             Borland C++
  19. # OS2       MSC       OS=OS2 COMP=MSC             Microsoft C
  20. # OS2       EMX       OS=OS2 COMP=EMX             emx/gcc
  21. # OS2       TSC       OS=OS2 COMP=TSC             TopSpeed C
  22. # OS2       WATCOMC   OS=OS2 COMP=WATCOMC         Watcom C
  23. # UNIX      GCC       OS=UNIX TOS=SUNOS COMP=GCC  GNU C under SUNOS
  24. # UNIX      GCC       OS=UNIX TOS=LINUX COMP=GCC  GNU C under LINUX
  25. #-----------------------------------------------------------------------
  26. # Special case for Microsoft Compiler when the host OS is DOS and the
  27. # target OS is OS2:
  28. # Command line will be OS=DOS COMP=MSC TOS=OS2
  29. #-----------------------------------------------------------------------
  30. # Change the following line to specify the memory model used.
  31. # Valid values: 
  32. #  (L - LARGE) (M - MEDIUM) (S - SMALL) (H - HUGE) (T - TINY) (C - COMPACT)
  33. #  Not all memory models may be available for a particular compiler.
  34. #-----------------------------------------------------------------------
  35. MODEL = L
  36. .IF $(MODEL) == L
  37.     model = l
  38.     SIZE = LARGE
  39. .ELIF $(MODEL) == M
  40.     model = m
  41.     SIZE = MEDIUM
  42. .ELIF $(MODEL) == S
  43.     model = s
  44.     SIZE = SMALL
  45. .ELIF $(MODEL) == T
  46.     model = t
  47.     SIZE = TINY
  48. .ELIF $(MODEL) == H
  49.     model = h
  50.     SIZE = HUGE
  51. .ELIF $(MODEL) == C
  52.     model = c
  53.     SIZE = COMPACT
  54. .END
  55. #-----------------------------------------------------------------------
  56. # For CSET2 and OS/2, target to build: LIB or DLL
  57. LIBTYPE = LIB
  58. #-----------------------------------------------------------------------
  59. #-----------------------------------------------------------------------
  60. # default setup for BCC under DOS, optimised version
  61. # change values below or override with -e switch on command line
  62. #-----------------------------------------------------------------------
  63. OS=DOS
  64. COMP=BCC
  65. OPT=Y
  66. #-----------------------------------------------------------------------
  67. VER = 21
  68. #-----------------------------------------------------------------------
  69. .IF $(TOS) == $(NULL)
  70.     TOS = $(OS)
  71. .END
  72. .IF $(OS) == OS2
  73. #========================================================================
  74. #========================= OS2 - CSET2 ==================================
  75. #========================================================================
  76.     .IF $(COMP) == CSET2
  77.         LINK      = link386
  78.         CC        = icc
  79.         LIB_EXE   = lib
  80.         LIB_DIR   = g:\ibmc\lib
  81.         SETARGV   = $(LIB_DIR)\setargv
  82.         .IF $(OPT) == N
  83.             CDEBUG = -Q+ -O- -DPDCDEBUG -Ti
  84.             LDEBUG = /DEBUG /NOE /SE:160 /PMTYPE:VIO
  85.             DBG    =d
  86.         .ELSE
  87.             CDEBUG  = -Q+ -O+ 
  88.             LDEBUG  = /NOE /SE:160 /PMTYPE:VIO
  89.             DBG     =o
  90.         .END
  91.         OBJ      = .obj
  92.         OBJ_DIR2 = o$(DBG)
  93.         OBJ_DIR  = o$(DBG)\\
  94.         PDCLIB   = curses$(DBG).lib
  95.         LIBRSP   =,lib.map;
  96.         CFLAGS   = $(CDEBUG) -Fo$@ -c -I$(PDC_INC)
  97.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  98.         UTLFLAGS = $(LDEBUG) $*$(OBJ);
  99.         MANFLAGS = $(LDEBUG) $*$(OBJ)+$(SETARGV);
  100.         .IF $(LIBTYPE) == DLL
  101.             CFLAGSDLL= -Ge- -O+ -Q+ -Fo$@ -c -I$(PDC_INC)
  102.             OBJ_DIR2 = dll-obj
  103.             OBJ_DIR  = dll-obj\\
  104.             MAKE_LIB = $(LINK) @$(LRF)
  105.             PDCLIB   = pdcurses.dll
  106.             DLFLAGS  = $(LDEBUG) $*$(OBJ),$*,,,$(DEMO_DIR)$*.def ;
  107.             TUIFLAGS = $(LDEBUG) $*$(OBJ)+tui$(OBJ),$*,,,$(DEMO_DIR)$*.def ;
  108.         .ELSE
  109.             DLFLAGS  = $(LDEBUG) $*$(OBJ),$*,,$(PDCLIB);
  110.             TUIFLAGS = $(LDEBUG) $*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB);
  111.         .END
  112. #========================================================================
  113. #========================= OS2 - BCC ====================================
  114. #========================================================================
  115.     .ELIF $(COMP) == BCC
  116.         LINK      = tlink
  117.         CC        = bcc
  118.         LIB_EXE   = tlib
  119.         LIB_DIR   = h:\bcos2\lib
  120.         INC_DIR   = h:\bcos2\include
  121.         WILDARGS  = $(LIB_DIR)\wildargs$(OBJ)
  122.         LIB_FLAGS = /C /E
  123.         RSP       = +$(ROOTDIR)\os2-bcc.rsp
  124.         DEFINES   =
  125.         .IF $(OPT) == N
  126.             CDEBUG    =-N -v -y -DPDCDEBUG
  127.             LDEBUG    = /ap /c /v+ /Toe
  128.             DBG    =d
  129.         .ELSE
  130.             CDEBUG    = -O 
  131.             LDEBUG    = /ap /c /v- /Toe
  132.             DBG     =o
  133.         .END
  134.         OBJ      = .obj
  135.         OBJ_DIR2 = o$(DBG)
  136.         OBJ_DIR  = o$(DBG)\\
  137.         PDCLIB   = curses$(DBG).lib
  138.         LIBRSP   =,lib.map
  139.         CFLAGS   = $(RSP) $(CDEBUG) $(DEFINES) -I$(PDC_INC) -I$(INC_DIR) -o$@
  140.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  141.         DLFLAGS  = $(LDEBUG) $(LIB_DIR)\c02$(OBJ)+$*$(OBJ),$*,,$(PDCLIB)+$(LIB_DIR)\c2.lib+$(LIB_DIR)\os2.lib;
  142.         TUIFLAGS = $(LDEBUG) $(LIB_DIR)\c02$(OBJ)+$*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB)+$(LIB_DIR)\c2.lib+$(LIB_DIR)\os2.lib;
  143.         UTLFLAGS = $(LDEBUG) $(LIB_DIR)\c02$(OBJ)+$*$(OBJ),$*,,$(LIB_DIR)\c2.lib+$(LIB_DIR)\os2.lib;
  144.         MANFLAGS = $(LDEBUG) $(LIB_DIR)\c02$(OBJ)+$*$(OBJ)+$(WILDARGS),$*,,$(LIB_DIR)\c2.lib+$(LIB_DIR)\os2.lib;
  145. #========================================================================
  146. #========================= OS2 - MSC ====================================
  147. #========================================================================
  148.     .ELIF $(COMP) == MSC
  149.         LINK      = link
  150.         CC        = cl
  151.         LIB_EXE   = lib
  152.         LIB_DIR   = $(LIB)
  153.         SETARGV   = $(LIB_DIR)\setargv
  154.         DEFINES   = -D__OS2__ -D$(SIZE)
  155.         .IF $(OPT) == N
  156.             CDEBUG = -J -nologo -Od -Zi -A$(MODEL) -DPDCDEBUG
  157.             LDEBUG = /CO /NOE /SE:160 /PMTYPE:VIO
  158.             DBG    = d
  159.         .ELSE
  160.             CDEBUG  = -J -nologo -Ox -A$(MODEL)
  161.             LDEBUG  = /NOE /SE:160 /PMTYPE:VIO
  162.             DBG     = o
  163.         .END
  164.         OBJ      = .obj
  165.         OBJ_DIR2 = o$(DBG)$(MODEL)
  166.         OBJ_DIR  = o$(DBG)$(MODEL)\\
  167.         PDCLIB   = $(MODEL)curses$(DBG).lib
  168.         LIBRSP   =,lib.map;
  169.         CFLAGS   = $(CDEBUG) $(DEFINES) -Fo$@ -c -I$(PDC_INC)
  170.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  171.         DLFLAGS  = $(LDEBUG) $*$(OBJ),$*,,$(PDCLIB);
  172.         TUIFLAGS = $(LDEBUG) $*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB);
  173.         UTLFLAGS  = $(LDEBUG) $*$(OBJ);
  174.         MANFLAGS = $(LDEBUG) $*$(OBJ)+$(SETARGV);
  175. #========================================================================
  176. #========================= OS2 - EMX ====================================
  177. #========================================================================
  178.     .ELIF $(COMP) == EMX
  179.         LINK      = $(CC)
  180.         CC        = gcc
  181.         LIB_EXE   = ar
  182.         LIBFLAGS  = rcv
  183.         DEFINES   = -D__OS2__ -D__EMX__
  184.         .IF $(OPT) == N
  185.             CDEBUG =-g -DPDCDEBUG
  186.             LDEBUG =-g
  187.             DBG    =d
  188.         .ELSE
  189.             CDEBUG  =-O 
  190.             LDEBUG =-s
  191.             DBG     =o
  192.         .END
  193.         OBJ      = .o
  194.         OBJ_DIR2 = o$(DBG)
  195.         OBJ_DIR  = o$(DBG)/
  196.         LIB_NAM  = curs$(DBG)
  197.         PDCLIB   = lib$(LIB_NAM).a
  198.         CFLAGS   = $(CDEBUG) $(DEFINES) -o$(@:db).o -c -I$(PDC_INC)
  199.         MAKE_LIB = $(LIB_EXE) $(LIBFLAGS) $(PDCLIB) $(OBJ_DIR)*.o
  200.         EMX_OMF_LIB=ar s $(PDCLIB) & emxomf -o lib$(LIB_NAM).lib $(PDCLIB)
  201.         MAKEEXE  = $(EMX_DIR)\bin\emxbind $(EMX_DIR)\bin\emxl.exe $* $*.exe
  202.         DLFLAGS  = $(LDEBUG) $*$(OBJ) -L. -l$(LIB_NAM) -o $*$(EXE)
  203.         TUIFLAGS = $(LDEBUG) $*$(OBJ) tui$(OBJ) -L. -l$(LIB_NAM) -o $*$(EXE)
  204.         UTLFLAGS = $(LDEBUG) $*$(OBJ) -o $*$(EXE) $(TOOLS_DIR)$*.def
  205.         MANFLAGS = $(LDEBUG) $*$(OBJ) -o $*$(EXE) $(TOOLS_DIR)$*.def
  206. #========================================================================
  207. #========================= OS2 - TSC ====================================
  208. #========================================================================
  209. # If you can fill in the following, please let me know !
  210. #========================================================================
  211.     .ELIF $(COMP) == TSC
  212.         OBJ      = .obj
  213. #========================================================================
  214. #========================= OS2 - WATCOMC ================================
  215. #========================================================================
  216. # If you can fill in the following, please let me know !
  217. #========================================================================
  218.     .ELIF $(COMP) == WATCOMC
  219.         OBJ      = .obj
  220.     .END
  221. .ELIF $(OS) == DOS
  222. #========================================================================
  223. #========================= DOS - BCC ====================================
  224. #========================================================================
  225.     .IF $(COMP) == BCC
  226.         LINK      = tlink
  227.         CC        = bcc
  228.         LIB_EXE   = tlib
  229.         LIB_DIR   = c:\c\lib
  230.         INC_DIR   = c:\c\include
  231.         WILDARGS  = $(LIB_DIR)\wildargs$(OBJ)
  232.         LIB_FLAGS = /C /E
  233.         RSP       = +$(ROOTDIR)\dos-bcc.rsp
  234.         DEFINES   =
  235.         .IF $(OPT) == N
  236.             CDEBUG    =-N -v -y -DPDCDEBUG
  237.             LDEBUG    =/c /v /s /l /e
  238.             DBG    =d
  239.         .ELSE
  240.             CDEBUG    = -O 
  241.             LDEBUG    =
  242.             DBG     =o
  243.         .END
  244.         OBJ      = .obj
  245.         OBJ_DIR2 = o$(DBG)$(model)
  246.         OBJ_DIR  = o$(DBG)$(model)\\
  247.         PDCLIB   = $(model)curses$(DBG).lib
  248.         LIBRSP   =,lib.map
  249.         CFLAGS   = $(RSP) $(CDEBUG) $(DEFINES) -m$(model) -I$(PDC_INC) -I$(INC_DIR) -o$@
  250.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  251.         DLFLAGS  = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ),$*,,$(PDCLIB)+$(LIB_DIR)\c$(model).lib;
  252.         TUIFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB)+$(LIB_DIR)\c$(model).lib;
  253.         UTLFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ),$*,,$(LIB_DIR)\c$(model).lib;
  254.         MANFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ)+$(WILDARGS),$*,,$(LIB_DIR)\c$(model).lib;
  255. #========================================================================
  256. #========================= DOS - TCC ====================================
  257. #========================================================================
  258.     .ELIF $(COMP) == TCC
  259.         LINK      = tlink
  260.         CC        = tcc
  261.         LIB_EXE   = tlib
  262.         LIB_DIR   = c:\c\lib
  263.         INC_DIR   = c:\c\include
  264.         WILDARGS  = $(LIB_DIR)\wildargs$(OBJ)
  265.         LIB_FLAGS = /C /E
  266.         RSP       = +$(ROOTDIR)\dos-tcc.rsp
  267.         DEFINES   =
  268.         DEFINES   =
  269.         .IF $(OPT) == N
  270.             CDEBUG    =-N -v -y -DPDCDEBUG
  271.             LDEBUG    =/c /v /s /l /e
  272.             DBG    =d
  273.         .ELSE
  274.             CDEBUG    = -O
  275.             LDEBUG    =
  276.             DBG     =o
  277.         .END
  278.         OBJ      = .obj
  279.         OBJ_DIR2 = o$(DBG)$(model)
  280.         OBJ_DIR  = o$(DBG)$(model)\\
  281.         PDCLIB   = $(model)curses$(DBG).lib
  282.         LIBRSP   =,lib.map
  283.         CFLAGS   = $(RSP) $(CDEBUG) $(DEFINES) -m$(model) -I$(PDC_INC) -I$(INC_DIR) -o$@
  284.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  285.         DLFLAGS  = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ),$*,,$(PDCLIB)+$(LIB_DIR)\c$(model).lib;
  286.         TUIFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB)+$(LIB_DIR)\c$(model).lib;
  287.         UTLFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ),$*,,$(LIB_DIR)\c$(model).lib;
  288.         MANFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ)+$(WILDARGS),$*,,$(LIB_DIR)\c$(model).lib;
  289. #========================================================================
  290. #========================= DOS - TC =====================================
  291. # This configuration courtesy of Ib Hojme (ibh@dde.dk)
  292. #========================================================================
  293.     .ELIF $(COMP) == TC
  294.         LINK      = tlink
  295.         CC        = tcc
  296.         LIB_EXE   = tlib
  297.         LIB_DIR   = c:\c\lib
  298.         INC_DIR   = c:\c\include
  299.         WILDARGS  = $(LIB_DIR)\wildargs$(OBJ)
  300.         LIB_FLAGS = /C /E
  301.         RSP       = -1- -K -G -rd -d -w-eff -j0 -c
  302.         DEFINES   =
  303.         .IF $(OPT) == N
  304.             CDEBUG    =-N -v -y -DPDCDEBUG
  305.             LDEBUG    =/c /v /s /l /e
  306.             DBG    =d
  307.         .ELSE
  308.             CDEBUG    = -O
  309.             LDEBUG    =
  310.             DBG     =o
  311.         .END
  312.         OBJ      = .obj
  313.         OBJ_DIR2 = o$(DBG)$(model)
  314.         OBJ_DIR  = o$(DBG)$(model)\\
  315.         PDCLIB   = $(model)curses$(DBG).lib
  316.         LIBRSP   =,lib.map
  317.         CFLAGS   = $(RSP) $(CDEBUG) $(DEFINES) -m$(model) -I$(PDC_INC) -I$(INC_DIR) -o$@
  318.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  319.         DLFLAGS  = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ),$*,,$(PDCLIB)+$(LIB_DIR)\c$(model).lib;
  320.         TUIFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB)+$(LIB_DIR)\c$(model).lib;
  321.         UTLFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ),$*,,$(LIB_DIR)\c$(model).lib;
  322.         MANFLAGS = $(LDEBUG) $(LIB_DIR)\c0$(model)$(OBJ)+$*$(OBJ)+$(WILDARGS),$*,,$(LIB_DIR)\c$(model).lib;
  323. #========================================================================
  324. #========================= DOS - MSC ====================================
  325. #========================================================================
  326.     .ELIF $(COMP) == MSC
  327.         LINK      = link
  328.         CC        = cl
  329.         LIB_EXE   = lib
  330.         SETARGV   = $(LIB)\setargv
  331.         DEFINES   = -EM -D$(SIZE)
  332.         .IF $(TOS) == OS2
  333.             OS2LD     = /PMTYPE:VIO
  334.             DEFINES   = -D__OS2__ -D$(SIZE)
  335.             OS2LIB    = $(LIB)\os2.lib
  336.             PLUS      =+
  337.             MAKEEXE   = bind $*
  338.         .END
  339.         .IF $(OPT) == N
  340.             CDEBUG = -J -nologo -Od -Zi -A$(MODEL) -DPDCDEBUG
  341.             LDEBUG = /CO /NOE /SE:160 $(OS2LD)
  342.             DBG    = d
  343.         .ELSE
  344.             CDEBUG  = -J -nologo -Ox -A$(MODEL)
  345.             LDEBUG  = /NOE /SE:160 $(OS2LD)
  346.             DBG     = o
  347.         .END
  348.         OBJ      = .obj
  349.         OBJ_DIR2 = o$(DBG)$(MODEL)
  350.         OBJ_DIR  = o$(DBG)$(MODEL)\\
  351.         PDCLIB   = $(MODEL)curses$(DBG).lib
  352.         LIBRSP   =,lib.map;
  353.         CFLAGS   = $(CDEBUG) $(DEFINES) -Fo$@ -c -I$(PDC_INC)
  354.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  355.         DLFLAGS  = $(LDEBUG) $*$(OBJ),$*,,$(PDCLIB)$(PLUS)$(OS2LIB);
  356.         TUIFLAGS = $(LDEBUG) $*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB)$(PLUS)$(OS2LIB);
  357.         UTLFLAGS = $(LDEBUG) $*$(OBJ),$*,,$(OS2LIB);
  358.         MANFLAGS = $(LDEBUG) $*$(OBJ)+$(SETARGV),$*,,$(OS2LIB);
  359. #========================================================================
  360. #========================= DOS - QCC ====================================
  361. #========================================================================
  362.     .ELIF $(COMP) == QCC
  363.         LINK      = link
  364.         CC        = qcc
  365.         LIB_EXE   = lib
  366.         SETARGV   = $(LIB)\setargv
  367.         DEFINES   = -D$(SIZE)
  368.         .IF $(OPT) == N
  369.             CDEBUG = -J -Od -Zi -A$(MODEL) -DPDCDEBUG
  370.             LDEBUG = /CO /NOE /SE:160
  371.             DBG    = d
  372.         .ELSE
  373.             CDEBUG  = -J -Ox -A$(MODEL)
  374.             LDEBUG  = /NOE /SE:160
  375.             DBG     = o
  376.         .END
  377.         OBJ      = .obj
  378.         OBJ_DIR2 = $(DBG)$(MODEL)
  379.         OBJ_DIR  = $(DBG)$(MODEL)\\
  380.         PDCLIB   = $(MODEL)curses$(DBG).lib
  381.         LIBRSP   =,lib.map;
  382.         CFLAGS   = $(CDEBUG) $(DEFINES) -Fo$@ -c -I$(PDC_INC)
  383.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  384.         DLFLAGS  = $(LDEBUG) $*$(OBJ),$*,,$(PDCLIB);
  385.         TUIFLAGS = $(LDEBUG) $*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB);
  386.         UTLFLAGS = $(LDEBUG) $*$(OBJ);
  387.         MANFLAGS = $(LDEBUG) $*$(OBJ)+$(SETARGV);
  388. #========================================================================
  389. #========================= DOS - QCL ====================================
  390. #========================================================================
  391.     .ELIF $(COMP) == QCL
  392.         LINK      = link
  393.         CC        = qcl
  394.         LIB_EXE   = lib
  395.         SETARGV   = $(LIB)\setargv
  396.         DEFINES   = -D$(SIZE)
  397.         .IF $(OPT) == N
  398.             CDEBUG = -J -Od -Zi -A$(MODEL) -DPDCDEBUG
  399.             LDEBUG = /CO /NOE /SE:160
  400.             DBG    = d
  401.         .ELSE
  402.             CDEBUG  = -J -Ox -A$(MODEL)
  403.             LDEBUG  = /NOE /SE:160
  404.             DBG     = o
  405.         .END
  406.         OBJ      = .obj
  407.         OBJ_DIR2 = $(DBG)$(MODEL)
  408.         OBJ_DIR  = $(DBG)$(MODEL)\\
  409.         PDCLIB   = $(MODEL)curses$(DBG).lib
  410.         LIBRSP   =,lib.map;
  411.         CFLAGS   = $(CDEBUG) $(DEFINES) -Fo$@ -c -I$(PDC_INC)
  412.         MAKE_LIB = $(LIB_EXE) $(PDCLIB) $(LIBFLAGS) @$(LRF)
  413.         DLFLAGS  = $(LDEBUG) $*$(OBJ),$*,,$(PDCLIB);
  414.         TUIFLAGS = $(LDEBUG) $*$(OBJ)+tui$(OBJ),$*,,$(PDCLIB);
  415.         UTLFLAGS = $(LDEBUG) $*$(OBJ);
  416.         MANFLAGS = $(LDEBUG) $*$(OBJ)+$(SETARGV);
  417. #========================================================================
  418. #========================= DOS - DJGPP ==================================
  419. # This configuration courtesy of David Nugent (davidn@csource.oz.au)
  420. #========================================================================
  421.     .ELIF $(COMP) == GO32
  422.         LINK      = $(CC)
  423.         CC        = gcc
  424.         LIB_EXE   = ar
  425.         LIB_DIR   = g:/djgpp/lib
  426.         LIBFLAGS  = rcv
  427.         MAKEEXE   = aout2exe $*
  428.         DEFINES   =
  429.         .IF $(OPT) == N
  430.             CDEBUG = -g -DPDCDEBUG
  431.             LDEBUG = -g
  432.             DBG    = d
  433.         .ELSE
  434.             CDEBUG = -O
  435.             LDEBUG =
  436.             DBG    = o
  437.         .END
  438.         OBJ      = .o
  439.         OBJ_DIR2 = o$(DBG)
  440.         OBJ_DIR  = o$(DBG)\\
  441.         PDCLIB   = curses$(DBG).a
  442.         LIBRSP   =
  443.         CFLAGS   = $(CDEBUG) $(DEFINES) -o$(@:db)$(OBJ) -c -I$(PDC_INC)
  444.         MAKE_LIB = $(LIB_EXE) $(LIBFLAGS) $(PDCLIB) $(OBJ_DIR2)/*$(OBJ)
  445.         DLFLAGS  = $(LDEBUG) -L$(LIB_DIR) $*$(OBJ) $(PDCLIB) -o $*
  446.         TUIFLAGS = $(LDEBUG) -L$(LIB_DIR) $*$(OBJ) tui$(OBJ) $(PDCLIB) -o $*
  447.         UTLFLAGS = $(LDEBUG) -L$(LIB_DIR) $*$(OBJ) -o $*
  448.         MANFLAGS = $(LDEBUG) -L$(LIB_DIR) $*$(OBJ) -o $*
  449.         EMX_OMF_LIB=ranlib $(PDCLIB)
  450.     .END
  451. .ELIF $(OS) == UNIX
  452. #========================================================================
  453. #========================= UNIX - GCC ===================================
  454. #========================================================================
  455.     .IF $(COMP) == GCC
  456.         CC        = gcc
  457.         LINK      = $(CC)
  458.         LIB_EXE   = ar
  459.         SETARGV   = 
  460.         DEFINES   = -DUNIX -D$(TOS) 
  461.         .IF $(OPT) == N
  462.             CDEBUG = -g -DPDCDEBUG
  463.             LDEBUG = -g
  464.             DBG    = d
  465.         .ELSE
  466.             CDEBUG  = -O
  467.             LDEBUG  =
  468.             DBG     = o
  469.         .END
  470.         OBJ      = .o
  471.         OBJ_DIR2 = object_$(DBG)
  472.         OBJ_DIR  = object_$(DBG)/
  473.         PDCLIB   = libpdcurses.a
  474.         MYTINFO  = /home/snark/mark/mytinfo
  475.         MYTINFOLIB= $(MYTINFO)/libmytinfo.a
  476.         EMX_OMF_LIB = ranlib $(PDCLIB)
  477.         LIBFLAGS = rv
  478.         CFLAGS   = $(CDEBUG) $(DEFINES) -c -I$(PDC_INC) -I$(MYTINFO) -o $@
  479.         MAKE_LIB = $(LIB_EXE) $(LIBFLAGS) $(PDCLIB) $(OBJ_DIR)*$(OBJ)
  480.         DLFLAGS  = $(LDEBUG) -o $* $*$(OBJ) $(PDCLIB) $(MYTINFOLIB)
  481.         TUIFLAGS = $(LDEBUG) -o $* $*$(OBJ) tui$(OBJ) $(PDCLIB) $(MYTINFOLIB)
  482.         UTLFLAGS = $(LDEBUG) -o $* $*$(OBJ)
  483.         MANFLAGS = $(LDEBUG) -o $* $*$(OBJ)
  484.     .END
  485. .END
  486. #-----------------------------------------------------------------------
  487. CFLAGSLIB = $(CFLAGS)
  488. .IF $(OS) == UNIX
  489.     DIRSEP = /
  490.     EXE       =
  491.     RM        = rm
  492.     ADDLRF    =
  493.     ROOTDIR   = .$(DIRSEP)
  494. .ELSE
  495.     DIRSEP    = \\
  496.     EXE       = .exe
  497.     ENDLIB    = +echo $(LIBRSP) >> $(LRF)
  498.     ADDLRF    = buildlrf $(LIBTYPE) -+$@ $(LRF)
  499.     RM        = del
  500.     LRF       = PDCurses.lrf
  501.     RMLRF     = $(RM) $(LRF)
  502.     .IF $(COMP) == GO32
  503.         DIRSEP = /
  504.         ENDLIB    = +-del $(PDCLIB)
  505.         ADDLRF    = 
  506.         RMLRF     =
  507.     .END
  508.     .IF $(COMP) == EMX
  509.         DIRSEP = /
  510.         ENDLIB    = +-del $(PDCLIB)
  511.         ADDLRF    = 
  512.         RMLRF     =
  513.     .END
  514.     .IF $(COMP) == CSET2
  515.         .IF $(LIBTYPE) == DLL
  516.             EXTRALIB  = +copy $(ROOTDIR)pdcurses.lnk $(LRF)
  517.             ENDLIB    = +echo $(PDCLIB),pdcurses.map,,$(ROOTDIR)pdcurses.def >> $(LRF)
  518.             ADDLRF    = 
  519.             CFLAGSLIB = $(CFLAGSDLL)
  520.         .END
  521.     .END
  522. #   ROOTDIR   = c:$(DIRSEP)curses$(DIRSEP)
  523.     ROOTDIR   = .$(DIRSEP)
  524. .END
  525.  
  526. PDC_INC   = $(ROOTDIR)
  527. PORT_DIR  = $(ROOTDIR)portable$(DIRSEP)
  528. NONP_DIR  = $(ROOTDIR)nonport$(DIRSEP)
  529. PRIV_DIR  = $(ROOTDIR)private$(DIRSEP)
  530. FLEX_DIR  = $(ROOTDIR)flexos$(DIRSEP)
  531. UNIX_DIR  = $(ROOTDIR)unix$(DIRSEP)
  532. TOOLS_DIR = $(ROOTDIR)tools$(DIRSEP)
  533. DEMO_DIR  = $(ROOTDIR)demos$(DIRSEP)
  534. DOC_DIR   = $(ROOTDIR)doc$(DIRSEP)
  535.  
  536. ROOT_RCS  = $(ROOTDIR)rcs$(DIRSEP)
  537. PORT_RCS  = $(ROOTDIR)portable$(DIRSEP)rcs$(DIRSEP)
  538. NONP_RCS  = $(ROOTDIR)nonport$(DIRSEP)rcs$(DIRSEP)
  539. PRIV_RCS  = $(ROOTDIR)private$(DIRSEP)rcs$(DIRSEP)
  540. FLEX_RCS  = $(ROOTDIR)flexos$(DIRSEP)rcs$(DIRSEP)
  541. UNIX_RCS  = $(ROOTDIR)unix$(DIRSEP)rcs$(DIRSEP)
  542. TOOLS_RCS = $(ROOTDIR)tools$(DIRSEP)rcs$(DIRSEP)
  543. DEMO_RCS  = $(ROOTDIR)demos$(DIRSEP)rcs$(DIRSEP)
  544. DOC_RCS   = $(ROOTDIR)doc$(DIRSEP)rcs$(DIRSEP)
  545. #######################################################################
  546. #<<<<<< Nothing below here should need to be changed >>>>>>>>>>>>>>>>>>
  547. #######################################################################
  548. #
  549. #   Header Files
  550. #
  551. HEADERS = $(PDC_INC)curses.h $(PDC_INC)curspriv.h $(PDC_INC)cursos2.h
  552.  
  553. #######################################################################
  554. ########################## First (default) target #####################
  555. #######################################################################
  556. all:    $(PDCLIB) demos manual
  557. #######################################################################
  558. ############################ Demo Programs Targets ####################
  559. #######################################################################
  560. demos:  $(PDCLIB) xmas$(EXE) newdemo$(EXE) testcurs$(EXE) firework$(EXE) tuidemo$(EXE)
  561.  
  562. newdemo$(EXE):    $(PDCLIB) newdemo$(OBJ)
  563.             $(LINK) $(DLFLAGS)
  564.             $(MAKEEXE)
  565.  
  566. xmas$(EXE):       $(PDCLIB) xmas$(OBJ)
  567.             $(LINK) $(DLFLAGS)
  568.             $(MAKEEXE)
  569.  
  570. testcurs$(EXE):   $(PDCLIB) testcurs$(OBJ)
  571.             $(LINK) $(DLFLAGS)
  572.             $(MAKEEXE)
  573.  
  574. firework$(EXE):   $(PDCLIB) firework$(OBJ)
  575.             $(LINK) $(DLFLAGS)
  576.             $(MAKEEXE)
  577.  
  578. tuidemo$(EXE):   $(PDCLIB) tuidemo$(OBJ) tui$(OBJ)
  579.             $(LINK) $(TUIFLAGS)
  580.             $(MAKEEXE)
  581.  
  582. test$(EXE):   $(PDCLIB) test$(OBJ)
  583.             $(LINK) $(DLFLAGS)
  584.             $(MAKEEXE)
  585.  
  586.  
  587. newdemo$(OBJ):   $(HEADERS) $(DEMO_DIR)newdemo.c
  588.             $(CC) $(CFLAGS) $(DEMO_DIR)newdemo.c
  589.             $(EMX_OMF_OBJ)
  590.  
  591. xmas$(OBJ):      $(HEADERS)  $(DEMO_DIR)xmas.c
  592.             $(CC) $(CFLAGS) $(DEMO_DIR)xmas.c
  593.             $(EMX_OMF_OBJ)
  594.  
  595. testcurs$(OBJ):  $(HEADERS)  $(DEMO_DIR)testcurs.c
  596.             $(CC) $(CFLAGS) $(DEMO_DIR)testcurs.c
  597.             $(EMX_OMF_OBJ)
  598.  
  599. firework$(OBJ):  $(HEADERS)  $(DEMO_DIR)firework.c
  600.             $(CC) $(CFLAGS) $(DEMO_DIR)firework.c
  601.             $(EMX_OMF_OBJ)
  602.  
  603. tuidemo$(OBJ):  $(HEADERS)  $(DEMO_DIR)tuidemo.c $(PDC_INC)tui.h
  604.             $(CC) $(CFLAGS) $(DEMO_DIR)tuidemo.c
  605.             $(EMX_OMF_OBJ)
  606.  
  607. tui$(OBJ):  $(HEADERS)  $(DEMO_DIR)tui.c $(PDC_INC)tui.h
  608.             $(CC) $(CFLAGS) $(DEMO_DIR)tui.c
  609.             $(EMX_OMF_OBJ)
  610.  
  611. test$(OBJ):  $(HEADERS)  test.c
  612.             $(CC) $(CFLAGS) test.c
  613.             $(EMX_OMF_OBJ)
  614.  
  615. #######################################################################
  616. ######################### Utility Program  Targets ####################
  617. #######################################################################
  618.  
  619. buildlrf$(EXE):   buildlrf$(OBJ)
  620.             $(LINK) $(UTLFLAGS)
  621.             $(MAKEEXE)
  622.  
  623. buildlrf$(OBJ): $(TOOLS_DIR)buildlrf.c
  624.             $(CC) $(CFLAGS) $(TOOLS_DIR)buildlrf.c
  625.             $(EMX_OMF_OBJ)
  626.  
  627. manext$(EXE):   manext$(OBJ)
  628.             $(LINK) $(MANFLAGS)
  629.             $(MAKEEXE)
  630.  
  631. manext$(OBJ): $(TOOLS_DIR)manext.c
  632.             $(CC) $(CFLAGS) $(TOOLS_DIR)manext.c
  633.             $(EMX_OMF_OBJ)
  634.  
  635. #######################################################################
  636. ######################### Library Program  Targets ####################
  637. #######################################################################
  638. #
  639. #       Portable Curses Functions
  640. #
  641. PORT1 = $(OBJ_DIR)baudrate$(OBJ) $(OBJ_DIR)beep$(OBJ)     $(OBJ_DIR)box$(OBJ)      \
  642.         $(OBJ_DIR)canchang$(OBJ) $(OBJ_DIR)cbreak$(OBJ)   $(OBJ_DIR)clearok$(OBJ)  \
  643.         $(OBJ_DIR)colorcon$(OBJ) $(OBJ_DIR)def_prog$(OBJ) $(OBJ_DIR)def_shel$(OBJ) \
  644.         $(OBJ_DIR)delay_ou$(OBJ) $(OBJ_DIR)delwin$(OBJ)   $(OBJ_DIR)doupdate$(OBJ) \
  645.         $(OBJ_DIR)echo$(OBJ)     $(OBJ_DIR)endwin$(OBJ)   $(OBJ_DIR)erasecha$(OBJ) \
  646.         $(OBJ_DIR)fixterm$(OBJ)  $(OBJ_DIR)flash$(OBJ)    $(OBJ_DIR)flushinp$(OBJ)
  647.  
  648. PORT2 = $(OBJ_DIR)gettmode$(OBJ) $(OBJ_DIR)getyx$(OBJ)    $(OBJ_DIR)has_ic$(OBJ)   \
  649.         $(OBJ_DIR)has_il$(OBJ)   $(OBJ_DIR)hascolor$(OBJ) $(OBJ_DIR)idlok$(OBJ)    \
  650.         $(OBJ_DIR)initcolo$(OBJ) $(OBJ_DIR)initpair$(OBJ) $(OBJ_DIR)initscr$(OBJ)  \
  651.         $(OBJ_DIR)intrflus$(OBJ) $(OBJ_DIR)keyname$(OBJ)  $(OBJ_DIR)keypad$(OBJ)   \
  652.         $(OBJ_DIR)killchar$(OBJ) $(OBJ_DIR)leaveok$(OBJ)  $(OBJ_DIR)longname$(OBJ) \
  653.         $(OBJ_DIR)meta$(OBJ)     $(OBJ_DIR)mvcur$(OBJ)    $(OBJ_DIR)mvprintw$(OBJ)
  654.  
  655. PORT3 = $(OBJ_DIR)mvscanw$(OBJ)  $(OBJ_DIR)mvwin$(OBJ)    $(OBJ_DIR)mvwprint$(OBJ) \
  656.         $(OBJ_DIR)mvwscanw$(OBJ) $(OBJ_DIR)newpad$(OBJ)   $(OBJ_DIR)newterm$(OBJ)  \
  657.         $(OBJ_DIR)newwin$(OBJ)   $(OBJ_DIR)nl$(OBJ)       $(OBJ_DIR)nocbreak$(OBJ) \
  658.         $(OBJ_DIR)nodelay$(OBJ)  $(OBJ_DIR)noecho$(OBJ)   $(OBJ_DIR)noraw$(OBJ)    \
  659.         $(OBJ_DIR)overlay$(OBJ)  $(OBJ_DIR)overwrit$(OBJ) $(OBJ_DIR)paircont$(OBJ) \
  660.         $(OBJ_DIR)pnoutref$(OBJ) $(OBJ_DIR)prefresh$(OBJ) $(OBJ_DIR)printw$(OBJ)
  661.  
  662. PORT4 = $(OBJ_DIR)raw$(OBJ)      $(OBJ_DIR)refresh$(OBJ)  $(OBJ_DIR)reset_pr$(OBJ) \
  663.         $(OBJ_DIR)reset_sh$(OBJ) $(OBJ_DIR)resetter$(OBJ) $(OBJ_DIR)resetty$(OBJ)  \
  664.         $(OBJ_DIR)saveoldt$(OBJ) $(OBJ_DIR)saveterm$(OBJ) $(OBJ_DIR)savetty$(OBJ)  \
  665.         $(OBJ_DIR)scanw$(OBJ)    $(OBJ_DIR)scroll$(OBJ)   $(OBJ_DIR)scrollok$(OBJ) \
  666.         $(OBJ_DIR)set_term$(OBJ) $(OBJ_DIR)setscrrg$(OBJ) $(OBJ_DIR)standend$(OBJ) \
  667.         $(OBJ_DIR)standout$(OBJ) $(OBJ_DIR)startcol$(OBJ) $(OBJ_DIR)subwin$(OBJ)
  668.  
  669. PORT5 = $(OBJ_DIR)touchlin$(OBJ) $(OBJ_DIR)touchwin$(OBJ) $(OBJ_DIR)typeahea$(OBJ) \
  670.         $(OBJ_DIR)unctrl$(OBJ)   $(OBJ_DIR)ungetch$(OBJ)  $(OBJ_DIR)waddch$(OBJ)   \
  671.         $(OBJ_DIR)waddstr$(OBJ)  $(OBJ_DIR)wattroff$(OBJ) $(OBJ_DIR)wattron$(OBJ)  \
  672.         $(OBJ_DIR)wattrset$(OBJ) $(OBJ_DIR)wclear$(OBJ)   $(OBJ_DIR)wclrtobo$(OBJ) \
  673.         $(OBJ_DIR)wclrtoeo$(OBJ) $(OBJ_DIR)wdelch$(OBJ)   $(OBJ_DIR)wdeletel$(OBJ) \
  674.         $(OBJ_DIR)werase$(OBJ)   $(OBJ_DIR)wgetch$(OBJ)   $(OBJ_DIR)wgetstr$(OBJ)
  675.  
  676. PORT6 = $(OBJ_DIR)winch$(OBJ)    $(OBJ_DIR)winsch$(OBJ)   $(OBJ_DIR)winsertl$(OBJ) \
  677.         $(OBJ_DIR)wmove$(OBJ)    $(OBJ_DIR)wnoutref$(OBJ) $(OBJ_DIR)wprintw$(OBJ)  \
  678.         $(OBJ_DIR)wrefresh$(OBJ) $(OBJ_DIR)wscanw$(OBJ)   $(OBJ_DIR)wsetscrr$(OBJ) \
  679.         $(OBJ_DIR)wstanden$(OBJ) $(OBJ_DIR)wstandou$(OBJ) $(OBJ_DIR)curs_set$(OBJ) \
  680.         $(OBJ_DIR)nonl$(OBJ)     $(OBJ_DIR)copywin$(OBJ)     \
  681.         $(OBJ_DIR)traceon$(OBJ)  $(OBJ_DIR)traceoff$(OBJ)
  682.  
  683. PORTABLE = $(PORT1) $(PORT2) $(PORT3) $(PORT4) $(PORT5) $(PORT6)
  684.  
  685. #
  686. #               Non-portable PDCurses Functions
  687. #
  688. NONPORT = $(OBJ_DIR)border$(OBJ)   $(OBJ_DIR)breakcha$(OBJ) $(OBJ_DIR)cursoff$(OBJ)  \
  689.           $(OBJ_DIR)curson$(OBJ)   $(OBJ_DIR)mvwinser$(OBJ) $(OBJ_DIR)rawout$(OBJ)   \
  690.           $(OBJ_DIR)resize$(OBJ)   $(OBJ_DIR)resizew$(OBJ)  $(OBJ_DIR)tabsize$(OBJ)  \
  691.           $(OBJ_DIR)waddraws$(OBJ) $(OBJ_DIR)wborder$(OBJ)  $(OBJ_DIR)wbox$(OBJ)     \
  692.           $(OBJ_DIR)winprint$(OBJ) $(OBJ_DIR)wordchar$(OBJ) $(OBJ_DIR)wtabsize$(OBJ)
  693.  
  694. #
  695. #               Private (Internal) PDCurses Functions
  696. #
  697. PRIV1 = $(OBJ_DIR)_addtail$(OBJ) $(OBJ_DIR)_addwin$(OBJ)  $(OBJ_DIR)_backchr$(OBJ) \
  698.         $(OBJ_DIR)_cattr$(OBJ)   $(OBJ_DIR)_chadd$(OBJ)   $(OBJ_DIR)_chgattr$(OBJ) \
  699.         $(OBJ_DIR)_chins$(OBJ)   $(OBJ_DIR)_ckbiosk$(OBJ) $(OBJ_DIR)_clrscr$(OBJ)  \
  700.         $(OBJ_DIR)_clrupda$(OBJ) $(OBJ_DIR)_findwin$(OBJ) $(OBJ_DIR)_fixcurs$(OBJ)
  701.  
  702. PRIV2 = $(OBJ_DIR)_gbiosky$(OBJ) $(OBJ_DIR)_gcrspos$(OBJ) $(OBJ_DIR)_gcurcol$(OBJ) \
  703.         $(OBJ_DIR)_gcurrow$(OBJ) $(OBJ_DIR)_getattr$(OBJ) $(OBJ_DIR)_getcbrk$(OBJ) \
  704.         $(OBJ_DIR)_getcols$(OBJ) $(OBJ_DIR)_getcrsr$(OBJ) $(OBJ_DIR)_getfont$(OBJ) \
  705.         $(OBJ_DIR)_getrows$(OBJ) $(OBJ_DIR)_getscrn$(OBJ) $(OBJ_DIR)_gotoxy$(OBJ)
  706.  
  707. PRIV3 = $(OBJ_DIR)_inswin$(OBJ)  $(OBJ_DIR)_makenew$(OBJ) $(OBJ_DIR)_newline$(OBJ) \
  708.         $(OBJ_DIR)_print$(OBJ)   $(OBJ_DIR)_putc$(OBJ)    $(OBJ_DIR)_putctty$(OBJ) \
  709.         $(OBJ_DIR)_queryad$(OBJ) $(OBJ_DIR)_rawgetc$(OBJ) $(OBJ_DIR)_rmwin$(OBJ)   \
  710.         $(OBJ_DIR)_sanity$(OBJ)  $(OBJ_DIR)_scb$(OBJ)     $(OBJ_DIR)_scrclos$(OBJ)
  711.  
  712. PRIV4 = $(OBJ_DIR)_scrnmod$(OBJ) $(OBJ_DIR)_scroll$(OBJ)  $(OBJ_DIR)_scropen$(OBJ) \
  713.         $(OBJ_DIR)_set8025$(OBJ) $(OBJ_DIR)_setcrsr$(OBJ) $(OBJ_DIR)_setfont$(OBJ) \
  714.         $(OBJ_DIR)_setrows$(OBJ) $(OBJ_DIR)_setscrn$(OBJ) $(OBJ_DIR)_sgetnl$(OBJ)  \
  715.         $(OBJ_DIR)_splitpl$(OBJ) $(OBJ_DIR)_sysgetc$(OBJ) $(OBJ_DIR)_validch$(OBJ)
  716.  
  717. PRIV5 = $(OBJ_DIR)_xfrmlin$(OBJ) $(OBJ_DIR)_vsscanf$(OBJ) $(OBJ_DIR)_usleep$(OBJ)  \
  718.         $(OBJ_DIR)_debug$(OBJ)   $(OBJ_DIR)_copywin$(OBJ) $(OBJ_DIR)_memmove$(OBJ) \
  719.         $(OBJ_DIR)_dosmem$(OBJ)
  720.  
  721. PRIVATE = $(PRIV1) $(PRIV2) $(PRIV3) $(PRIV4) $(PRIV5)
  722.  
  723. #
  724. #       PDCurses function specific to the FlexOS Operating System
  725. #
  726. .IF $(OS) == FLEXOS
  727. FLEXOS = $(OBJ_DIR)_16bitmo$(OBJ) $(OBJ_DIR)_8bitmod$(OBJ) $(OBJ_DIR)_gname$(OBJ)
  728. .END
  729.  
  730. #
  731. #       PDCurses function specific to Unix
  732. #
  733. .IF $(OS) == UNIX
  734. UNIX = $(OBJ_DIR)_kbhit$(OBJ) $(OBJ_DIR)_setkeys$(OBJ)
  735. .END
  736.  
  737.  
  738. $(PDCLIB): buildlrf$(EXE) $(OBJ_DIR2) $(HEADERS) $(PORTABLE) $(NONPORT) $(PRIVATE) $(FLEXOS) $(UNIX)
  739.             $(EXTRALIB)
  740.             $(ENDLIB)
  741.             $(MAKE_LIB)
  742.             $(EMX_OMF_LIB)
  743.             +-$(RMLRF)
  744.  
  745. $(OBJ_DIR2):
  746.             +-mkdir $(OBJ_DIR2)
  747. #
  748. #       Refresh library response file and build library
  749. #
  750. lib:    $(PDCLIB)
  751.             +if exist $(PDCLIB) del $(PDCLIB)
  752.             +if exist $(LRF) del $(LRF)
  753.             +for %%f in ($(OBJ_DIR)*$(OBJ)) do buildlrf $(LIBTYPE) +%%f $(LRF)
  754.             $(EXTRALIB)
  755.             $(ENDLIB)
  756.             $(MAKE_LIB)
  757.             $(EMX_OMF_LIB)
  758.             +if exist $(LRF) del $(LRF)
  759.  
  760. #
  761. #       Object Module Targets
  762. #
  763.  
  764. # PORTABLE
  765. $(OBJ_DIR)%$(OBJ): $(PORT_DIR)%.c
  766.               $(CC) $(CFLAGSLIB) $<
  767.               -$(ADDLRF)
  768.  
  769. # NONPORT
  770.  
  771. $(OBJ_DIR)%$(OBJ): $(NONP_DIR)%.c
  772.                 $(CC) $(CFLAGSLIB) $<
  773.                 -$(ADDLRF)
  774.  
  775. # PRIVATE
  776.  
  777. $(OBJ_DIR)%$(OBJ): $(PRIV_DIR)%.c
  778.               $(CC) $(CFLAGSLIB) $<
  779.               -$(ADDLRF)
  780.  
  781. # FLEXOS
  782.  
  783. $(OBJ_DIR)%$(OBJ): $(FLEX_DIR)%.c
  784.               $(CC) $(CFLAGSLIB) $<
  785.               -$(ADDLRF)
  786.  
  787. # UNIX
  788.  
  789. $(OBJ_DIR)%$(OBJ): $(UNIX_DIR)%.c
  790.               $(CC) $(CFLAGSLIB) $<
  791.               -$(ADDLRF)
  792.  
  793. #######################################################################
  794. ######################### Documentation Targets #######################
  795. #######################################################################
  796.  
  797. manual:        $(DOC_DIR)intro.man    $(DOC_DIR)overview.man    $(DOC_DIR)todo.man manext$(EXE)
  798.     manext $(DOC_DIR)intro.man             > PDCurses.man
  799.     manext $(DOC_DIR)overview.man             >> PDCurses.man
  800.     +echo .......=================================== >> PDCurses.man
  801.     +echo .......PDCurses Definitions and Variables:    >> PDCurses.man
  802.     +echo .......=================================== >> PDCurses.man
  803.     manext $(PDC_INC)curses.h $(FFLAGS)    >> PDCurses.man
  804.     +echo .......============================ >> PDCurses.man
  805.     +echo .......Portable PDCurses Functions:        >> PDCurses.man
  806.     +echo .......============================ >> PDCurses.man
  807.     manext $(PORT_DIR)*.c >> PDCurses.man
  808.     +echo .......================================ >> PDCurses.man
  809.     +echo .......Non-portable PDCurses Functions:        >> PDCurses.man
  810.     +echo .......================================ >> PDCurses.man
  811.     manext $(NONP_DIR)*.c >> PDCurses.man
  812.     +echo .......============================ >> PDCurses.man
  813.     +echo .......Internal PDCurses Functions:        >> PDCurses.man
  814.     +echo .......============================ >> PDCurses.man
  815.     manext $(PRIV_DIR)*.c >> PDCurses.man
  816.     +echo .......========================== >> PDCurses.man
  817.     +echo .......PDCurses Flexos Functions:        >> PDCurses.man
  818.     +echo .......========================== >> PDCurses.man
  819.     manext $(FLEX_DIR)*.c >> PDCurses.man
  820.     +echo .......========================== >> PDCurses.man
  821.     +echo .......PDCurses Unix Functions:        >> PDCurses.man
  822.     +echo .......========================== >> PDCurses.man
  823.     manext $(UNIX_DIR)*.c >> PDCurses.man
  824.     +echo .......======================== >> PDCurses.man
  825.     +echo .......Functions not supported:        >> PDCurses.man
  826.     +echo .......======================== >> PDCurses.man
  827.     manext $(DOC_DIR)todo.man             >> PDCurses.man
  828.  
  829. #######################################################################
  830. ######################### Maintenance Targets #########################
  831. #######################################################################
  832. clean:
  833.     +$(RM) PDCurses.ar? 
  834.     +$(RM) $(OBJ_DIR)*$(OBJ)
  835.  
  836. zoo:
  837.     zoo a pdcurs$(VER) $(ROOTDIR)readme.20 $(ROOTDIR)readme.21 $(ROOTDIR)makefile $(HEADERS)
  838.     zoo a pdcurs$(VER) $(ROOTDIR)tui.h $(ROOTDIR)pdcurses.def $(ROOTDIR)pdcurses.lnk $(DOC_DIR)*.man
  839.     zoo a pdcurs$(VER) $(PORT_DIR)*.c $(NONP_DIR)*.c $(PRIV_DIR)*.c
  840.     zoo a pdcurs$(VER) $(FLEX_DIR)*.c $(UNIX_DIR)*.c $(DEMO_DIR)*.c $(DEMO_DIR)*.def
  841.     zoo a pdcurs$(VER) $(TOOLS_DIR)*.c $(TOOLS_DIR)*.def $(TOOLS_DIR)*.ini $(ROOTDIR)*.rsp
  842.  
  843. zip:
  844.     zip pdcurs$(VER) $(ROOTDIR)readme.20 $(ROOTDIR)readme.21 $(ROOTDIR)makefile $(HEADERS)
  845.     zip pdcurs$(VER) $(ROOTDIR)tui.h $(ROOTDIR)pdcurses.def $(ROOTDIR)pdcurses.lnk $(DOC_DIR)*.man
  846.     zip pdcurs$(VER) $(PORT_DIR)*.c $(NONP_DIR)*.c $(PRIV_DIR)*.c
  847.     zip pdcurs$(VER) $(FLEX_DIR)*.c $(UNIX_DIR)*.c $(DEMO_DIR)*.c $(DEMO_DIR)*.def 
  848.     zip pdcurs$(VER) $(TOOLS_DIR)*.c $(TOOLS_DIR)*.def $(TOOLS_DIR)*.ini $(ROOTDIR)*.rsp
  849.  
  850. tar:
  851.     tar cvf pdcurs$(VER).tar $(ROOTDIR)readme.20 $(ROOTDIR)readme.21 $(ROOTDIR)makefile $(HEADERS) \
  852.     $(ROOTDIR)tui.h $(ROOTDIR)pdcurses.def $(ROOTDIR)pdcurses.lnk $(DOC_DIR)*.man                                      \
  853.     $(PORT_DIR)*.c $(NONP_DIR)*.c $(PRIV_DIR)*.c                         \
  854.     $(FLEX_DIR)*.c $(UNIX_DIR)*.c $(DEMO_DIR)*.c $(DEMO_DIR)*.def        \
  855.     $(TOOLS_DIR)*.c $(TOOLS_DIR)*.def $(TOOLS_DIR)*.ini $(ROOTDIR)*.rsp
  856.     compress pdcurs$(VER).tar
  857.  
  858. ziprcs:
  859.     zip cursrcs $(ROOT_RCS)* $(DOC_RCS)* $(TOOLS_RCS)*
  860.     zip cursrcs $(PORT_RCS)* $(NONP_RCS)* $(PRIV_RCS)*
  861.     zip cursrcs $(FLEX_RCS)* $(UNIX_RCS)* $(DEMO_RCS)*
  862.